package com.infotel.prefecture.service;

import java.util.List;

import com.infotel.prefecture.dao.CarteGriseDAO;
import com.infotel.prefecture.dao.CarteGriseDAOJdbc;
import com.infotel.prefecture.dao.ProprietaireDAO;
import com.infotel.prefecture.dao.ProprietaireDAOJdbc;
import com.infotel.prefecture.dao.UtilisateurDAO;
import com.infotel.prefecture.dao.UtilisateurDAOJdbc;
import com.infotel.prefecture.dao.VehiculeDAO;
import com.infotel.prefecture.dao.VehiculeDAOJdbc;
import com.infotel.prefecture.exception.PrefectureException;
import com.infotel.prefecture.model.CarteGrise;
import com.infotel.prefecture.model.Proprietaire;
import com.infotel.prefecture.model.Utilisateur;
import com.infotel.prefecture.model.Vehicule;

public class PrefectureServiceImpl implements PrefectureService {

    /* (non-Javadoc)
     * @see com.infotel.prefecture.service.PrefectureService#authentifier(java.lang.String, java.lang.String)
     */
    @Override
    public Utilisateur authentifier(String id, String mdp)throws PrefectureException{        
        UtilisateurDAO dao = new UtilisateurDAOJdbc();
        Utilisateur u = dao.findById(id);
        if(u==null) {
            throw new PrefectureException("Utilisateur inconnu");
        }
        if(!mdp.equals(u.getMdp())){
            throw new PrefectureException("Mot de passe incorrect");
        }
        return u;
    }

    @Override
    public List<CarteGrise> rechercherCarteGrise(String immatriculation,
            int puissanceAdministrative) throws PrefectureException {
        CarteGriseDAOJdbc dao = new CarteGriseDAOJdbc();
        List<CarteGrise> listeCarteGrise = dao.findByImmatAndPuissance(immatriculation, puissanceAdministrative);

        return listeCarteGrise;
    }
    

    @Override
    public void creerCarteGrise(CarteGrise carteGrise)
            throws PrefectureException {
        Vehicule vehicule = carteGrise.getVehicule();
        Proprietaire proprietaire = carteGrise.getProprietaire();
        
        VehiculeDAO vdao = new VehiculeDAOJdbc();
        ProprietaireDAO pdao = new ProprietaireDAOJdbc();
        CarteGriseDAO cdao = new CarteGriseDAOJdbc();
        
        vdao.insertVehicule(vehicule);
        pdao.insertProprietaire(proprietaire);
        cdao.insertCarteGrise(carteGrise);
        
        
    }


}
